<template>
  <div class="hello" @click="clickLogin">
    <h1>{{ msg }}</h1>
    <h2>Essential Links</h2>
    <div id="token" @click.stop="clickToken">{{ token }}</div>
    <ul>
      <li>
        <a href="https://vuejs.org" target="_blank"> Core Docs </a>
      </li>
      <li>
        <a href="https://forum.vuejs.org" target="_blank"> Forum </a>
      </li>
      <li>
        <a href="https://chat.vuejs.org" target="_blank"> Community Chat </a>
      </li>
      <li>
        <a href="https://twitter.com/vuejs" target="_blank"> Twitter </a>
      </li>
      <br />
      <li>
        <a href="http://vuejs-templates.github.io/webpack/" target="_blank">
          Docs for This Template
        </a>
      </li>
    </ul>
    <h2>Ecosystem</h2>
    <ul>
      <li>
        <a href="http://router.vuejs.org/" target="_blank"> vue-router </a>
      </li>
      <li>
        <a href="http://vuex.vuejs.org/" target="_blank"> vuex </a>
      </li>
      <li>
        <a href="http://vue-loader.vuejs.org/" target="_blank"> vue-loader </a>
      </li>
      <li>
        <a href="https://github.com/vuejs/awesome-vue" target="_blank">
          awesome-vue
        </a>
      </li>
    </ul>
  </div>
</template>

<script>
import axios from '../axios/index';
import qs from 'qs'
export default {
  name: 'HelloWorld',
  props: {
    propName: {
      type: String,
      default: ""
    },
  },
  data() {
    return {
      msg: 'Welcome to Your Vue.js App',
      token: ""
    }
  },
  watch: {
    token(newValue, oldValue) {
      if (newValue) {
        this.returnToken();
      }
    }
  },
  async mounted() {
    this.login();
  },
  created() {
    console.log(1234)
  },
  computed: {
    getToken() {
      return this.propName + ' ' + this.token;
    }
  },
  methods: {
    clickToken() {
      console.log(1);
    },
    returnToken() {
      this.msg = this.token;
    },
    count(a, b) {
      if (a && b) {
        return a + b;
      }
      return 0;
    },
    login() {
      axios.post('/user/login', qs.stringify({ userName: "mahd", password: "123456" }))
    },
    clickLogin() {
      return axios.post('/user/login', qs.stringify({ userName: "mahuaide", password: "123456" })).then(res => {
        let { code, data } = res.data;
        if (code == 200) {
          this.token = data;
          return Promise.resolve(this.token);
        } else {
          this.token = data;
          return Promise.reject(this.token);
        }
      }).catch(e => {
        this.token = "";
        return Promise.reject(this.token);
      }).finally(() => {
        console.log("finally")
      })
    },
  },
}

</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1,
h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>
